UDP广播与多播

您所在的位置:网站首页 udp广播包 翻译 UDP广播与多播

UDP广播与多播

2024-07-10 10:22| 来源: 网络整理| 查看: 265

一、UDP广播

1、广播的概念

  使用UDP协议进行信息的传输之前不需要建议连接。换句话说就是客户端向服务器发送信息,客户端只需要给出服务器的ip地址和端口号,然后将信息封装到一个待发送的报文中并且发送出去。至于服务器端是否存在,或者能否收到该报文,客户端根本不用管。

  网络上的广播指:由一台主机向该主机所在子网内(同一个局域网)的所有主机发送数据的方式。

2、广播的特点

  实现广播,离不开广播地址,同一个子网(局域网)的所有主机网卡都会接收所在网段广播地址的数据包。广播地址应用于局域网内的所有主机。广播地址(Broadcast Address)是专门用于同时向网络中(通常指同一子网)所有工作站进行发送的一个地址。

  广播UDP与单播UDP的区别就是IP地址不同,广播使用广播地址255.255.255.255,将消息发送到在同一广播网络上的每个主机。值得强调的是:本地广播信息是不会被路由器转发。当然这是十分容易理解的,因为如果路由器转发了广播信息,那么势必会引起网络瘫痪。

  其实广播顾名思义,就是想局域网内所有的人说话,但是广播还是要指明接收者的端口号的,因为不可能接受者的所有端口都来收听广播。

【UDP广播特点如下】:

可以向广播域内的所有主机发送数据 ;

不能够跨越不同的网络,被路由器所隔离开。 在这里插入图片描述

3、设置套接字选项

// 默认的情况下,不允许发送广播数据包,需要修改套接口选项 int setsockopt( int sockfd, int level, int optname, const void *optval, socklen_t optlen); /* sockfd:套接字; level:SOL_SOCKET; optname:SO_BROADCAST; optval:int opt=1,传入&opt; optlen:sizeof(opt); */

4、UDP广播的实现

#include #include #include #include #include #include #include int main() { unsigned short port = 8080; // 设置端口号,该端口号的进程可以接收到广播数据 char *server_ip = "255.255.255.255"; // 受限广播地址 int sockfd = socket(AF_INET, SOCK_DGRAM, 0); // 初始化套接字 if (sockfd


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3